原创使用mysql自定义函数来实现mysql查询格式化数值类型问题
简书链接:原创使用mysql自定义函数来实现mysql查询格式化数值类型问题
文章字数:579,阅读全文大约需要2分钟
首先,如果使用辅助工具也是可以实现的,但是能只用mysql工具就最好了。具有强迫症和钻研精神的我把这个想法给实现了。
由于我存储的授权信息是基于分钟而且是数值类型,因此直接通过数据库查询工具进行查询就有点蛋疼,查询的是数值,而不是时间。
首先是时间怎么获取打印的问题,刚开始研究now()
,day
发现都不太好用,timestamp()
函数结果一直报错,后面发现是参数有问题,后面使用了 current_timestamp()
发现还是有问题,只显示2019,于是先研究怎么打印函数.
经过测试发现 select current_timestamp()
;可以进行测试,
发现打印的是一个格式化的日期时间,于是搜索时间戳int,最后发现unix_timestamp(now());
可以,另外select UNIX_TIMESTAMP();
也可以,于是需求就解决了。
定义CurrentMinute()函数
1 | CREATE DEFINER = `admin`@`%` FUNCTION `NewProc`() |
定义秒转分钟函数
1 | CREATE DEFINER = `admin`@`%` FUNCTION `NewProc`(`time1` integer) |
现在的结果我还是不满意,我需要把结果集转换为格式化时间方便查看。
这里就设计到2个问题了,时间戳date类型与 时间戳 数值型互相转换,签名用到了 时间戳date类型转数值型,现在反过来了.
1 | ``` |
最后的验证
1 | select currentMinute(); |
这里还有一个灵感是基于系统函数count()于是乎我就觉得我这样用也是没问题的,没想到果然如此。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 情迁博客!
评论